Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 1 | git-revert(1) |
| 2 | ============= |
| 3 | |
| 4 | NAME |
| 5 | ---- |
Junio C Hamano | 89a5734 | 2010-06-22 23:22:55 | [diff] [blame] | 6 | git-revert - Revert some existing commits |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 7 | |
| 8 | SYNOPSIS |
| 9 | -------- |
Junio C Hamano | 89a5734 | 2010-06-22 23:22:55 | [diff] [blame] | 10 | 'git revert' [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>... |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 11 | |
| 12 | DESCRIPTION |
| 13 | ----------- |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 14 | |
Junio C Hamano | 89a5734 | 2010-06-22 23:22:55 | [diff] [blame] | 15 | Given one or more existing commits, revert the changes that the |
| 16 | related patches introduce, and record some new commits that record |
| 17 | them. This requires your working tree to be clean (no modifications |
| 18 | from the HEAD commit). |
| 19 | |
| 20 | Note: 'git revert' is used to record some new commits to reverse the |
| 21 | effect of some earlier commits (often only a faulty one). If you want to |
Junio C Hamano | 3580ad2 | 2008-08-21 00:27:40 | [diff] [blame] | 22 | throw away all uncommitted changes in your working directory, you |
| 23 | should see linkgit:git-reset[1], particularly the '--hard' option. If |
| 24 | you want to extract specific files as they were in another commit, you |
Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 25 | should see linkgit:git-checkout[1], specifically the `git checkout |
| 26 | <commit> -- <filename>` syntax. Take care with these alternatives as |
Junio C Hamano | 3580ad2 | 2008-08-21 00:27:40 | [diff] [blame] | 27 | both will discard uncommitted changes in your working directory. |
| 28 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 29 | OPTIONS |
| 30 | ------- |
Junio C Hamano | 89a5734 | 2010-06-22 23:22:55 | [diff] [blame] | 31 | <commit>...:: |
| 32 | Commits to revert. |
Junio C Hamano | 2d47c62 | 2007-01-18 06:24:10 | [diff] [blame] | 33 | For a more complete list of ways to spell commit names, see |
Junio C Hamano | c27b733 | 2010-10-14 04:37:28 | [diff] [blame] | 34 | linkgit:gitrevisions[7]. |
Junio C Hamano | 89a5734 | 2010-06-22 23:22:55 | [diff] [blame] | 35 | Sets of commits can also be given but no traversal is done by |
| 36 | default, see linkgit:git-rev-list[1] and its '--no-walk' |
| 37 | option. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 38 | |
Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 39 | -e:: |
| 40 | --edit:: |
Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 41 | With this option, 'git revert' will let you edit the commit |
Junio C Hamano | 0e66113 | 2008-01-21 02:37:44 | [diff] [blame] | 42 | message prior to committing the revert. This is the default if |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 43 | you run the command from a terminal. |
| 44 | |
Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 45 | -m parent-number:: |
| 46 | --mainline parent-number:: |
Junio C Hamano | d814b6d | 2007-11-04 11:13:49 | [diff] [blame] | 47 | Usually you cannot revert a merge because you do not know which |
| 48 | side of the merge should be considered the mainline. This |
| 49 | option specifies the parent number (starting from 1) of |
| 50 | the mainline and allows revert to reverse the change |
| 51 | relative to the specified parent. |
Junio C Hamano | f123149 | 2008-12-22 08:27:21 | [diff] [blame] | 52 | + |
| 53 | Reverting a merge commit declares that you will never want the tree changes |
| 54 | brought in by the merge. As a result, later merges will only bring in tree |
| 55 | changes introduced by commits that are not ancestors of the previously |
| 56 | reverted merge. This may or may not be what you want. |
| 57 | + |
| 58 | See the link:howto/revert-a-faulty-merge.txt[revert-a-faulty-merge How-To] for |
| 59 | more details. |
Junio C Hamano | d814b6d | 2007-11-04 11:13:49 | [diff] [blame] | 60 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 61 | --no-edit:: |
Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 62 | With this option, 'git revert' will not start the commit |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 63 | message editor. |
| 64 | |
Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 65 | -n:: |
| 66 | --no-commit:: |
Junio C Hamano | 89a5734 | 2010-06-22 23:22:55 | [diff] [blame] | 67 | Usually the command automatically creates some commits with |
| 68 | commit log messages stating which commits were |
| 69 | reverted. This flag applies the changes necessary |
| 70 | to revert the named commits to your working tree |
| 71 | and the index, but does not make the commits. In addition, |
Junio C Hamano | f69a0a0 | 2008-07-17 08:08:47 | [diff] [blame] | 72 | when this option is used, your index does not have to match |
| 73 | the HEAD commit. The revert is done against the |
| 74 | beginning state of your index. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 75 | + |
| 76 | This is useful when reverting more than one commits' |
Junio C Hamano | f69a0a0 | 2008-07-17 08:08:47 | [diff] [blame] | 77 | effect to your index in a row. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 78 | |
Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 79 | -s:: |
| 80 | --signoff:: |
Junio C Hamano | 6d76d61 | 2008-05-09 05:46:08 | [diff] [blame] | 81 | Add Signed-off-by line at the end of the commit message. |
| 82 | |
Junio C Hamano | 23e3f53 | 2011-02-10 02:05:29 | [diff] [blame] | 83 | --strategy=<strategy>:: |
| 84 | Use the given merge strategy. Should only be used once. |
| 85 | See the MERGE STRATEGIES section in linkgit:git-merge[1] |
| 86 | for details. |
| 87 | |
| 88 | -X<option>:: |
| 89 | --strategy-option=<option>:: |
| 90 | Pass the merge strategy-specific option through to the |
| 91 | merge strategy. See linkgit:git-merge[1] for details. |
| 92 | |
Junio C Hamano | 89a5734 | 2010-06-22 23:22:55 | [diff] [blame] | 93 | EXAMPLES |
| 94 | -------- |
| 95 | git revert HEAD~3:: |
| 96 | |
| 97 | Revert the changes specified by the fourth last commit in HEAD |
| 98 | and create a new commit with the reverted changes. |
| 99 | |
Junio C Hamano | d3dc649 | 2010-12-03 00:43:12 | [diff] [blame] | 100 | git revert -n master{tilde}5..master{tilde}2:: |
Junio C Hamano | 89a5734 | 2010-06-22 23:22:55 | [diff] [blame] | 101 | |
| 102 | Revert the changes done by commits from the fifth last commit |
| 103 | in master (included) to the third last commit in master |
| 104 | (included), but do not create any commit with the reverted |
| 105 | changes. The revert only modifies the working tree and the |
| 106 | index. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 107 | |
Junio C Hamano | 89a5734 | 2010-06-22 23:22:55 | [diff] [blame] | 108 | SEE ALSO |
| 109 | -------- |
| 110 | linkgit:git-cherry-pick[1] |
| 111 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 112 | GIT |
| 113 | --- |
Junio C Hamano | f7c042d | 2008-06-06 22:50:53 | [diff] [blame] | 114 | Part of the linkgit:git[1] suite |